{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 第一题"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1.98 µs ± 121 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([37.2, 37.6, 36.8])"
      ]
     },
     "execution_count": 72,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import numpy as np\n",
    "X = np.array([[1.2, 1.5, 1.8],\n",
    "               [1.3, 1.4, 1.9],\n",
    "               [1.1, 1.6, 1.7]])\n",
    "y = np.array([5, 10, 9]).T  # 转换成矩阵\n",
    "%timeit X.dot(y)  # 统计这个乘积所花费的时间\n",
    "X.dot(y)  # 矩阵点乘积，计算三天中每天的采购总金额"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "45.9 µs ± 1.95 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)\n"
     ]
    }
   ],
   "source": [
    "%%timeit\n",
    "total = []\n",
    "for i in range(X.shape[0]):   # X.shape[0] X的行数， 遍历X的每一行\n",
    "    each_price = 0    # 初始值\n",
    "    for j in range(X.shape[1]):      # X.shape[0] X的列数， 遍历X的每一列\n",
    "        each_price += X[i,j] * y[j]\n",
    "    total.append(round(each_price, 1))   # round四舍五入  ， 每次运输结果写入total这个数组"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[37.2, 37.6, 36.8]"
      ]
     },
     "execution_count": 74,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "total  # 查看一下是不是得到了正确结果"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 第二题\n",
    "###   1）处理为3列矩阵"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([6, 9, 6, 1, 1, 2, 8, 7, 3, 5, 6, 3, 5, 3, 5, 8, 8, 2, 8, 1, 7, 8,\n",
       "       7, 2, 1, 2, 9, 9, 4, 9])"
      ]
     },
     "execution_count": 75,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.random.seed(1)  \n",
    "X = np.random.randint(1, 10, size = 30)   # 获取1-10之间的随机数，30个\n",
    "X"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[6, 9, 6],\n",
       "       [1, 1, 2],\n",
       "       [8, 7, 3],\n",
       "       [5, 6, 3],\n",
       "       [5, 3, 5],\n",
       "       [8, 8, 2],\n",
       "       [8, 1, 7],\n",
       "       [8, 7, 2],\n",
       "       [1, 2, 9],\n",
       "       [9, 4, 9]])"
      ]
     },
     "execution_count": 76,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X.reshape(-1, 3) # 处理为一个3列的矩阵"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "###   2）小于等于3的修改为0、大于3且小于等于6的修改为1、大于6的修改为2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([6, 2, 3, 3, 5, 2, 7, 2, 9, 9])"
      ]
     },
     "execution_count": 77,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X1 = X.reshape(-1 ,3)  \n",
    "last1 = X1[:, -1]  # 取最后一列\n",
    "last1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([False,  True,  True,  True, False,  True, False,  True, False,\n",
       "       False])"
      ]
     },
     "execution_count": 78,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "last1 <= 3 # 返回符合条件的位置，位置以True False来表示"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([2, 3, 3, 2, 2])"
      ]
     },
     "execution_count": 79,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 实现方式一： 返回满足条件的值： 小于等于3\n",
    "temp1 = last1[last1 <= 3]\n",
    "temp1\n",
    "# 实现方式二： 返回满足条件值的索引值\n",
    "# temp1 = np.where(last1 <= 3)\n",
    "# temp1\n",
    "# last1[temp1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([6, 5])"
      ]
     },
     "execution_count": 80,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 返回满足条件的值 大于3小于等于6\n",
    "temp2 =  last1[(last1 > 3) & (last1 <= 6)]\n",
    "temp2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([7, 9, 9])"
      ]
     },
     "execution_count": 81,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 返回满足条件的值 大于6\n",
    "temp3 =  last1[last1 > 6]\n",
    "temp3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1, 0, 0, 0, 1, 0, 2, 0, 2, 2])"
      ]
     },
     "execution_count": 82,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "last1[last1 <= 3] = 0    # 给小于等于3的值赋值为0\n",
    "last1[(last1 > 3) & (last1 <= 6)] = 1   # 给大于3小于等于6的值赋值为1\n",
    "last1[last1 > 6] = 2    # 给大于6的值赋值为2\n",
    "last1"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "###   3）分离出 3个分类"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_train = X1[:, 0:2]   # 取所有行，第0，1列"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[6, 9],\n",
       "       [1, 1],\n",
       "       [8, 7],\n",
       "       [5, 6],\n",
       "       [5, 3],\n",
       "       [8, 8],\n",
       "       [8, 1],\n",
       "       [8, 7],\n",
       "       [1, 2],\n",
       "       [9, 4]])"
      ]
     },
     "execution_count": 84,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_train = last1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1, 0, 0, 0, 1, 0, 2, 0, 2, 2])"
      ]
     },
     "execution_count": 86,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_train"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([1, 2, 3, 5, 7], dtype=int64),)"
      ]
     },
     "execution_count": 90,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "row_s = np.where(y_train == 0)  # 返回等于0的索引\n",
    "row_s"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 1],\n",
       "       [8, 7],\n",
       "       [5, 6],\n",
       "       [8, 8],\n",
       "       [8, 7]])"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train[y_train == 0] # 分类为0   "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[6, 9],\n",
       "       [5, 3]])"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train[y_train == 1] # 分类为1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[8, 1],\n",
       "       [1, 2],\n",
       "       [9, 4]])"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train[y_train == 2] # 分类为2"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 第三题  Log分析\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1.导入相关模块"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2.读取log.txt到pandas, 加上列名"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "      <th>6</th>\n",
       "      <th>7</th>\n",
       "      <th>8</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2019162542</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>162644</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>162742</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>5</td>\n",
       "      <td>845.84</td>\n",
       "      <td>136.31</td>\n",
       "      <td>225.73</td>\n",
       "      <td>169.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:02:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>162808</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>9</td>\n",
       "      <td>1305.52</td>\n",
       "      <td>90.12</td>\n",
       "      <td>196.61</td>\n",
       "      <td>145.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:03:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>162943</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>3</td>\n",
       "      <td>568.89</td>\n",
       "      <td>138.45</td>\n",
       "      <td>232.02</td>\n",
       "      <td>189.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:04:07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            0                       1  2        3       4       5      6   7  \\\n",
       "0  2019162542  /front-api/bill/create  8  1057.31   88.75  177.72  132.0  60   \n",
       "1      162644  /front-api/bill/create  5   749.12  103.79  240.38  149.0  60   \n",
       "2      162742  /front-api/bill/create  5   845.84  136.31  225.73  169.0  60   \n",
       "3      162808  /front-api/bill/create  9  1305.52   90.12  196.61  145.0  60   \n",
       "4      162943  /front-api/bill/create  3   568.89  138.45  232.02  189.0  60   \n",
       "\n",
       "                     8  \n",
       "0  2018-11-01 00:00:07  \n",
       "1  2018-11-01 00:01:07  \n",
       "2  2018-11-01 00:02:07  \n",
       "3  2018-11-01 00:03:07  \n",
       "4  2018-11-01 00:04:07  "
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.read_csv('./log.txt',header = None, sep = '\\t')   # 以制表符分割\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>api</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>interval</th>\n",
       "      <th>create_at</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2019162542</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>162644</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           id                     api  count  res_time_sum  res_time_min  \\\n",
       "0  2019162542  /front-api/bill/create      8       1057.31         88.75   \n",
       "1      162644  /front-api/bill/create      5        749.12        103.79   \n",
       "\n",
       "   res_time_max  res_time_avg  interval            create_at  \n",
       "0        177.72         132.0        60  2018-11-01 00:00:07  \n",
       "1        240.38         149.0        60  2018-11-01 00:01:07  "
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.columns = ['id','api','count','res_time_sum','res_time_min','res_time_max','res_time_avg','interval','create_at']\n",
    "df.head(2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.检测是否有重复值，有的话删除，节省内存"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 179496 entries, 0 to 179495\n",
      "Data columns (total 9 columns):\n",
      " #   Column        Non-Null Count   Dtype  \n",
      "---  ------        --------------   -----  \n",
      " 0   id            179496 non-null  int64  \n",
      " 1   api           179496 non-null  object \n",
      " 2   count         179496 non-null  int64  \n",
      " 3   res_time_sum  179496 non-null  float64\n",
      " 4   res_time_min  179496 non-null  float64\n",
      " 5   res_time_max  179496 non-null  float64\n",
      " 6   res_time_avg  179496 non-null  float64\n",
      " 7   interval      179496 non-null  int64  \n",
      " 8   create_at     179496 non-null  object \n",
      "dtypes: float64(4), int64(3), object(2)\n",
      "memory usage: 12.3+ MB\n"
     ]
    }
   ],
   "source": [
    "df.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(179496, 9)"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count                     179496\n",
       "unique                         1\n",
       "top       /front-api/bill/create\n",
       "freq                      179496\n",
       "Name: api, dtype: object"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['api'].describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 上面查看发现api都是唯一值，所以可以删除，以优化内存：\n",
    "df = df.drop('api',axis = 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 179496 entries, 0 to 179495\n",
      "Data columns (total 8 columns):\n",
      " #   Column        Non-Null Count   Dtype  \n",
      "---  ------        --------------   -----  \n",
      " 0   id            179496 non-null  int64  \n",
      " 1   count         179496 non-null  int64  \n",
      " 2   res_time_sum  179496 non-null  float64\n",
      " 3   res_time_min  179496 non-null  float64\n",
      " 4   res_time_max  179496 non-null  float64\n",
      " 5   res_time_avg  179496 non-null  float64\n",
      " 6   interval      179496 non-null  int64  \n",
      " 7   create_at     179496 non-null  object \n",
      "dtypes: float64(4), int64(3), object(1)\n",
      "memory usage: 11.0+ MB\n"
     ]
    }
   ],
   "source": [
    "df.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count    179496.0\n",
       "mean         60.0\n",
       "std           0.0\n",
       "min          60.0\n",
       "25%          60.0\n",
       "50%          60.0\n",
       "75%          60.0\n",
       "max          60.0\n",
       "Name: interval, dtype: float64"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['interval'].describe()   # 可见interval都是60，对分析没有意义也可删掉"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = df.drop('interval',axis = 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 179496 entries, 0 to 179495\n",
      "Data columns (total 7 columns):\n",
      " #   Column        Non-Null Count   Dtype  \n",
      "---  ------        --------------   -----  \n",
      " 0   id            179496 non-null  int64  \n",
      " 1   count         179496 non-null  int64  \n",
      " 2   res_time_sum  179496 non-null  float64\n",
      " 3   res_time_min  179496 non-null  float64\n",
      " 4   res_time_max  179496 non-null  float64\n",
      " 5   res_time_avg  179496 non-null  float64\n",
      " 6   create_at     179496 non-null  object \n",
      "dtypes: float64(4), int64(2), object(1)\n",
      "memory usage: 9.6+ MB\n"
     ]
    }
   ],
   "source": [
    "df.info()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 4.使用created_at这一列的数据作为时间索引"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 为了便于后续查询和检索，把'create_at'这个时间用作索引\n",
    "df.index=pd.to_datetime(df.create_at)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>create_at</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>create_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:00:48</th>\n",
       "      <td>11406128</td>\n",
       "      <td>6</td>\n",
       "      <td>2105.08</td>\n",
       "      <td>125.74</td>\n",
       "      <td>992.46</td>\n",
       "      <td>350.0</td>\n",
       "      <td>2019-05-01 00:00:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:01:48</th>\n",
       "      <td>11406236</td>\n",
       "      <td>7</td>\n",
       "      <td>2579.11</td>\n",
       "      <td>76.55</td>\n",
       "      <td>987.47</td>\n",
       "      <td>368.0</td>\n",
       "      <td>2019-05-01 00:01:48</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                           id  count  res_time_sum  res_time_min  \\\n",
       "create_at                                                          \n",
       "2019-05-01 00:00:48  11406128      6       2105.08        125.74   \n",
       "2019-05-01 00:01:48  11406236      7       2579.11         76.55   \n",
       "\n",
       "                     res_time_max  res_time_avg            create_at  \n",
       "create_at                                                             \n",
       "2019-05-01 00:00:48        992.46         350.0  2019-05-01 00:00:48  \n",
       "2019-05-01 00:01:48        987.47         368.0  2019-05-01 00:01:48  "
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 查看一下是不是好用\n",
    "df['2019-05-01'].head(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>create_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:00:07</th>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:01:07</th>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     count  res_time_sum  res_time_min  res_time_max  \\\n",
       "create_at                                                              \n",
       "2018-11-01 00:00:07      8       1057.31         88.75        177.72   \n",
       "2018-11-01 00:01:07      5        749.12        103.79        240.38   \n",
       "\n",
       "                     res_time_avg  \n",
       "create_at                          \n",
       "2018-11-01 00:00:07         132.0  \n",
       "2018-11-01 00:01:07         149.0  "
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 这样id和create_at也没有用了，也可以删除\n",
    "df = df.drop(['id','create_at'], axis = 1)\n",
    "df.head(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "DatetimeIndex: 179496 entries, 2018-11-01 00:00:07 to 2019-05-30 23:10:21\n",
      "Data columns (total 5 columns):\n",
      " #   Column        Non-Null Count   Dtype  \n",
      "---  ------        --------------   -----  \n",
      " 0   count         179496 non-null  int64  \n",
      " 1   res_time_sum  179496 non-null  float64\n",
      " 2   res_time_min  179496 non-null  float64\n",
      " 3   res_time_max  179496 non-null  float64\n",
      " 4   res_time_avg  179496 non-null  float64\n",
      "dtypes: float64(4), int64(1)\n",
      "memory usage: 8.2 MB\n"
     ]
    }
   ],
   "source": [
    "df.info()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 5.查找异常值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>179496.000000</td>\n",
       "      <td>179496.000000</td>\n",
       "      <td>179496.000000</td>\n",
       "      <td>179496.000000</td>\n",
       "      <td>179496.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>7.175909</td>\n",
       "      <td>1393.177832</td>\n",
       "      <td>108.419626</td>\n",
       "      <td>359.880374</td>\n",
       "      <td>187.812208</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>4.325160</td>\n",
       "      <td>1499.486073</td>\n",
       "      <td>79.640693</td>\n",
       "      <td>638.919827</td>\n",
       "      <td>224.464813</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>36.550000</td>\n",
       "      <td>3.210000</td>\n",
       "      <td>36.550000</td>\n",
       "      <td>36.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>4.000000</td>\n",
       "      <td>607.707500</td>\n",
       "      <td>83.410000</td>\n",
       "      <td>198.280000</td>\n",
       "      <td>144.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>7.000000</td>\n",
       "      <td>1154.905000</td>\n",
       "      <td>97.120000</td>\n",
       "      <td>256.090000</td>\n",
       "      <td>167.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>10.000000</td>\n",
       "      <td>1834.117500</td>\n",
       "      <td>116.990000</td>\n",
       "      <td>374.410000</td>\n",
       "      <td>202.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>31.000000</td>\n",
       "      <td>142650.550000</td>\n",
       "      <td>18896.640000</td>\n",
       "      <td>142468.270000</td>\n",
       "      <td>71325.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               count   res_time_sum   res_time_min   res_time_max  \\\n",
       "count  179496.000000  179496.000000  179496.000000  179496.000000   \n",
       "mean        7.175909    1393.177832     108.419626     359.880374   \n",
       "std         4.325160    1499.486073      79.640693     638.919827   \n",
       "min         1.000000      36.550000       3.210000      36.550000   \n",
       "25%         4.000000     607.707500      83.410000     198.280000   \n",
       "50%         7.000000    1154.905000      97.120000     256.090000   \n",
       "75%        10.000000    1834.117500     116.990000     374.410000   \n",
       "max        31.000000  142650.550000   18896.640000  142468.270000   \n",
       "\n",
       "        res_time_avg  \n",
       "count  179496.000000  \n",
       "mean      187.812208  \n",
       "std       224.464813  \n",
       "min        36.000000  \n",
       "25%       144.000000  \n",
       "50%       167.000000  \n",
       "75%       202.000000  \n",
       "max     71325.000000  "
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.describe() # 看一下整个表的信息，没有特别异常的"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<function matplotlib.pyplot.show(*args, **kw)>"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 通过直方图来查看 count ,每分钟的调用情况 大部分在15次以内\n",
    "df['count'].hist()\n",
    "plt.show"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<function matplotlib.pyplot.show(*args, **kw)>"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 通过直方图来查看 count ,每分钟的调用情况 大部分在15次以内\n",
    "# 柱子宽度调小查看\n",
    "df['count'].hist(bins = 30)\n",
    "plt.show"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 6.在一天中，哪些时间是访问高峰"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 切出一天的数据，绘制一天时段的接口调用情况\n",
    "df['2019-5-1']['count'].plot()\n",
    "plt.show()\n",
    "# 下午2，3点和晚上8，9点是高峰期， 凌晨和上午几乎没有访问量"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>create_at</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:00:00</th>\n",
       "      <td>4.428571</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 01:00:00</th>\n",
       "      <td>2.272727</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 02:00:00</th>\n",
       "      <td>1.833333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 03:00:00</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 04:00:00</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 05:00:00</th>\n",
       "      <td>2.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 06:00:00</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 07:00:00</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 08:00:00</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 09:00:00</th>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 10:00:00</th>\n",
       "      <td>1.400000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 11:00:00</th>\n",
       "      <td>1.604651</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 12:00:00</th>\n",
       "      <td>3.298246</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 13:00:00</th>\n",
       "      <td>6.866667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 14:00:00</th>\n",
       "      <td>10.483333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 15:00:00</th>\n",
       "      <td>12.333333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 16:00:00</th>\n",
       "      <td>9.916667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 17:00:00</th>\n",
       "      <td>7.666667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 18:00:00</th>\n",
       "      <td>6.783333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 19:00:00</th>\n",
       "      <td>9.850000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 20:00:00</th>\n",
       "      <td>11.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 21:00:00</th>\n",
       "      <td>10.416667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 22:00:00</th>\n",
       "      <td>8.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:00:00</th>\n",
       "      <td>5.083333</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                         count\n",
       "create_at                     \n",
       "2019-05-01 00:00:00   4.428571\n",
       "2019-05-01 01:00:00   2.272727\n",
       "2019-05-01 02:00:00   1.833333\n",
       "2019-05-01 03:00:00        NaN\n",
       "2019-05-01 04:00:00        NaN\n",
       "2019-05-01 05:00:00   2.000000\n",
       "2019-05-01 06:00:00        NaN\n",
       "2019-05-01 07:00:00        NaN\n",
       "2019-05-01 08:00:00        NaN\n",
       "2019-05-01 09:00:00   1.000000\n",
       "2019-05-01 10:00:00   1.400000\n",
       "2019-05-01 11:00:00   1.604651\n",
       "2019-05-01 12:00:00   3.298246\n",
       "2019-05-01 13:00:00   6.866667\n",
       "2019-05-01 14:00:00  10.483333\n",
       "2019-05-01 15:00:00  12.333333\n",
       "2019-05-01 16:00:00   9.916667\n",
       "2019-05-01 17:00:00   7.666667\n",
       "2019-05-01 18:00:00   6.783333\n",
       "2019-05-01 19:00:00   9.850000\n",
       "2019-05-01 20:00:00  11.000000\n",
       "2019-05-01 21:00:00  10.416667\n",
       "2019-05-01 22:00:00   8.000000\n",
       "2019-05-01 23:00:00   5.083333"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 从新采样，以小时为单位\n",
    "df2 = df['2019-5-1']\n",
    "df2 = df2[['count']].resample('1H').mean()\n",
    "df2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df2['count'].plot()\n",
    "plt.show()\n",
    "# 可以看到下午和晚上两个高峰，而凌晨是没有访问量的（具体每个小时的访问量看不见）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x216 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize = (10, 3))  # 调整一下图表大小单位是英寸\n",
    "df2['count'].plot(kind = 'bar') # 柱状图，可每个小时一个柱子\n",
    "plt.xticks(rotation = 60) # 文字旋转角度\n",
    "plt.show()\n",
    "# 可见14点和19点是两个高峰"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 通过箱图查看有没有异常时段\n",
    "df['2019-5-1'][['count']].boxplot(showmeans = True, meanline = True)\n",
    "plt.show()\n",
    "# 发现了一些异常值 >20的"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>create_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-11-01 20:47:09</th>\n",
       "      <td>21</td>\n",
       "      <td>3117.20</td>\n",
       "      <td>84.90</td>\n",
       "      <td>260.82</td>\n",
       "      <td>148.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 21:03:09</th>\n",
       "      <td>21</td>\n",
       "      <td>3706.20</td>\n",
       "      <td>78.12</td>\n",
       "      <td>321.47</td>\n",
       "      <td>176.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 21:13:09</th>\n",
       "      <td>24</td>\n",
       "      <td>4602.03</td>\n",
       "      <td>76.31</td>\n",
       "      <td>391.12</td>\n",
       "      <td>191.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-02 21:34:11</th>\n",
       "      <td>30</td>\n",
       "      <td>4610.15</td>\n",
       "      <td>72.49</td>\n",
       "      <td>463.41</td>\n",
       "      <td>153.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-03 14:20:13</th>\n",
       "      <td>21</td>\n",
       "      <td>3113.93</td>\n",
       "      <td>74.29</td>\n",
       "      <td>266.20</td>\n",
       "      <td>148.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-30 21:33:21</th>\n",
       "      <td>27</td>\n",
       "      <td>6456.64</td>\n",
       "      <td>99.65</td>\n",
       "      <td>978.91</td>\n",
       "      <td>239.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-30 21:43:21</th>\n",
       "      <td>21</td>\n",
       "      <td>6371.84</td>\n",
       "      <td>65.98</td>\n",
       "      <td>1175.37</td>\n",
       "      <td>303.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-30 21:47:21</th>\n",
       "      <td>21</td>\n",
       "      <td>3992.83</td>\n",
       "      <td>87.83</td>\n",
       "      <td>440.88</td>\n",
       "      <td>190.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-30 21:53:21</th>\n",
       "      <td>24</td>\n",
       "      <td>8467.02</td>\n",
       "      <td>120.22</td>\n",
       "      <td>1511.17</td>\n",
       "      <td>352.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-30 22:17:21</th>\n",
       "      <td>21</td>\n",
       "      <td>4926.35</td>\n",
       "      <td>85.01</td>\n",
       "      <td>826.90</td>\n",
       "      <td>234.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>746 rows × 5 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                     count  res_time_sum  res_time_min  res_time_max  \\\n",
       "create_at                                                              \n",
       "2018-11-01 20:47:09     21       3117.20         84.90        260.82   \n",
       "2018-11-01 21:03:09     21       3706.20         78.12        321.47   \n",
       "2018-11-01 21:13:09     24       4602.03         76.31        391.12   \n",
       "2018-11-02 21:34:11     30       4610.15         72.49        463.41   \n",
       "2018-11-03 14:20:13     21       3113.93         74.29        266.20   \n",
       "...                    ...           ...           ...           ...   \n",
       "2019-05-30 21:33:21     27       6456.64         99.65        978.91   \n",
       "2019-05-30 21:43:21     21       6371.84         65.98       1175.37   \n",
       "2019-05-30 21:47:21     21       3992.83         87.83        440.88   \n",
       "2019-05-30 21:53:21     24       8467.02        120.22       1511.17   \n",
       "2019-05-30 22:17:21     21       4926.35         85.01        826.90   \n",
       "\n",
       "                     res_time_avg  \n",
       "create_at                          \n",
       "2018-11-01 20:47:09         148.0  \n",
       "2018-11-01 21:03:09         176.0  \n",
       "2018-11-01 21:13:09         191.0  \n",
       "2018-11-02 21:34:11         153.0  \n",
       "2018-11-03 14:20:13         148.0  \n",
       "...                           ...  \n",
       "2019-05-30 21:33:21         239.0  \n",
       "2019-05-30 21:43:21         303.0  \n",
       "2019-05-30 21:47:21         190.0  \n",
       "2019-05-30 21:53:21         352.0  \n",
       "2019-05-30 22:17:21         234.0  \n",
       "\n",
       "[746 rows x 5 columns]"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[df['count'] > 20]  # 把大于20的条目抽出来"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1f62710d0a0>"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 2019/5/1的不同时段的平均响应时间\n",
    "df['2019-5-1']['res_time_avg'].plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1f62654d340>"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 2019/5/1的不同时段的平均响应时间; 箱图，确定异常值\n",
    "df['2019-5-1'][['res_time_avg']].boxplot()\n",
    "# 根据图，我们认为1000以上的算异常"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "<ipython-input-47-fdbebb46ce83>:3: UserWarning: Boolean Series key will be reindexed to match DataFrame index.\n",
      "  df2[df['res_time_avg'] > 1000]\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>create_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:34:48</th>\n",
       "      <td>1</td>\n",
       "      <td>1694.47</td>\n",
       "      <td>1694.47</td>\n",
       "      <td>1694.47</td>\n",
       "      <td>1694.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 14:00:49</th>\n",
       "      <td>17</td>\n",
       "      <td>19770.18</td>\n",
       "      <td>207.54</td>\n",
       "      <td>2974.52</td>\n",
       "      <td>1162.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 18:36:49</th>\n",
       "      <td>8</td>\n",
       "      <td>8799.92</td>\n",
       "      <td>96.59</td>\n",
       "      <td>3233.26</td>\n",
       "      <td>1099.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 19:09:49</th>\n",
       "      <td>6</td>\n",
       "      <td>7399.94</td>\n",
       "      <td>307.39</td>\n",
       "      <td>3153.02</td>\n",
       "      <td>1233.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 19:10:49</th>\n",
       "      <td>13</td>\n",
       "      <td>23595.60</td>\n",
       "      <td>206.20</td>\n",
       "      <td>4664.84</td>\n",
       "      <td>1815.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 20:38:49</th>\n",
       "      <td>15</td>\n",
       "      <td>16169.25</td>\n",
       "      <td>142.47</td>\n",
       "      <td>3624.26</td>\n",
       "      <td>1077.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     count  res_time_sum  res_time_min  res_time_max  \\\n",
       "create_at                                                              \n",
       "2019-05-01 00:34:48      1       1694.47       1694.47       1694.47   \n",
       "2019-05-01 14:00:49     17      19770.18        207.54       2974.52   \n",
       "2019-05-01 18:36:49      8       8799.92         96.59       3233.26   \n",
       "2019-05-01 19:09:49      6       7399.94        307.39       3153.02   \n",
       "2019-05-01 19:10:49     13      23595.60        206.20       4664.84   \n",
       "2019-05-01 20:38:49     15      16169.25        142.47       3624.26   \n",
       "\n",
       "                     res_time_avg  \n",
       "create_at                          \n",
       "2019-05-01 00:34:48        1694.0  \n",
       "2019-05-01 14:00:49        1162.0  \n",
       "2019-05-01 18:36:49        1099.0  \n",
       "2019-05-01 19:09:49        1233.0  \n",
       "2019-05-01 19:10:49        1815.0  \n",
       "2019-05-01 20:38:49        1077.0  "
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 把1000以上的拿出来观察一下\n",
    "df2=df['2019-5-1']\n",
    "df2[df['res_time_avg'] > 1000]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 7.分析一天中api响应时间"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<function matplotlib.pyplot.show(*args, **kw)>"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 每分钟采样的图拿出来观察一下 一天中api响应时间\n",
    "df['2019-5-1'][['res_time_sum','res_time_min','res_time_max','res_time_avg']].plot()\n",
    "plt.show"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<function matplotlib.pyplot.show(*args, **kw)>"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 每20分钟采样的图拿出来观察一下 一天中api响应时间\n",
    "data = df['2019-5-1'].resample('20T').mean()\n",
    "data['2019-5-1'][['res_time_sum','res_time_min','res_time_max','res_time_avg']].plot()\n",
    "plt.show"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 8. 分析连续的几天数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 分析连续的几天数据\n",
    "df['2019-5-1':'2019-5-10']['count'].plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 9. 分析周末访问量是否有增加"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>weekday</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>create_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:00:07</th>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:01:07</th>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     count  res_time_sum  res_time_min  res_time_max  \\\n",
       "create_at                                                              \n",
       "2018-11-01 00:00:07      8       1057.31         88.75        177.72   \n",
       "2018-11-01 00:01:07      5        749.12        103.79        240.38   \n",
       "\n",
       "                     res_time_avg  weekday  \n",
       "create_at                                   \n",
       "2018-11-01 00:00:07         132.0        3  \n",
       "2018-11-01 00:01:07         149.0        3  "
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 加一个星期列\t\t\t\t\n",
    "df['weekday'] = df.index.weekday\n",
    "df.head(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>weekday</th>\n",
       "      <th>weekend</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>create_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:00:07</th>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>3</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:01:07</th>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>3</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     count  res_time_sum  res_time_min  res_time_max  \\\n",
       "create_at                                                              \n",
       "2018-11-01 00:00:07      8       1057.31         88.75        177.72   \n",
       "2018-11-01 00:01:07      5        749.12        103.79        240.38   \n",
       "\n",
       "                     res_time_avg  weekday  weekend  \n",
       "create_at                                            \n",
       "2018-11-01 00:00:07         132.0        3    False  \n",
       "2018-11-01 00:01:07         149.0        3    False  "
      ]
     },
     "execution_count": 60,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 判断是否是周末 值（5，6）\n",
    "df['weekend'] = df['weekday'].isin({5,6})\n",
    "df.head(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "weekend\n",
       "False    7.016846\n",
       "True     7.574989\n",
       "Name: count, dtype: float64"
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 对weekend分组（False表示工作日，true表示周末），对count列 求平均值\n",
    "df.groupby('weekend')['count'].mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>weekend</th>\n",
       "      <th>False</th>\n",
       "      <th>True</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>create_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>3.239120</td>\n",
       "      <td>3.467782</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.668388</td>\n",
       "      <td>1.741849</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1.162551</td>\n",
       "      <td>1.161826</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1.086705</td>\n",
       "      <td>1.050000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1.155556</td>\n",
       "      <td>1.076923</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>1.136364</td>\n",
       "      <td>1.333333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.071429</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>1.080000</td>\n",
       "      <td>1.144928</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>1.239011</td>\n",
       "      <td>1.254111</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>2.031690</td>\n",
       "      <td>1.992958</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>4.195845</td>\n",
       "      <td>4.031889</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>6.668042</td>\n",
       "      <td>6.905772</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>8.260503</td>\n",
       "      <td>8.851321</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>8.934448</td>\n",
       "      <td>9.858422</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>8.466504</td>\n",
       "      <td>9.420550</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>6.784996</td>\n",
       "      <td>7.334743</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>6.717731</td>\n",
       "      <td>7.342150</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>8.655913</td>\n",
       "      <td>9.270430</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>10.536496</td>\n",
       "      <td>11.173609</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>10.846906</td>\n",
       "      <td>11.695043</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>9.034164</td>\n",
       "      <td>10.419916</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>5.946834</td>\n",
       "      <td>7.025452</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "weekend        False      True \n",
       "create_at                      \n",
       "0           3.239120   3.467782\n",
       "1           1.668388   1.741849\n",
       "2           1.162551   1.161826\n",
       "3           1.086705   1.050000\n",
       "4           1.155556   1.076923\n",
       "5           1.136364   1.333333\n",
       "6           1.000000   1.000000\n",
       "7           1.000000   1.000000\n",
       "8           1.000000   1.071429\n",
       "9           1.080000   1.144928\n",
       "10          1.239011   1.254111\n",
       "11          2.031690   1.992958\n",
       "12          4.195845   4.031889\n",
       "13          6.668042   6.905772\n",
       "14          8.260503   8.851321\n",
       "15          8.934448   9.858422\n",
       "16          8.466504   9.420550\n",
       "17          6.784996   7.334743\n",
       "18          6.717731   7.342150\n",
       "19          8.655913   9.270430\n",
       "20         10.536496  11.173609\n",
       "21         10.846906  11.695043\n",
       "22          9.034164  10.419916\n",
       "23          5.946834   7.025452"
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 看看周末(True)和工作日（FALSE）各个时段\n",
    "df.groupby(['weekend',df.index.hour])['count'].mean().unstack(level=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<function matplotlib.pyplot.show(*args, **kw)>"
      ]
     },
     "execution_count": 65,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df.groupby(['weekend',df.index.hour])['count'].mean().unstack(level=0).plot()\n",
    "plt.show"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
